package com.keith.jpa.tenant.aop;

import org.springframework.core.annotation.AliasFor;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * JpaTenant.java
 * 租户处理注解
 *
 * @author czykeih
 * @version 1.0 2023/10/25
 */
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface JpaTenant {
    /**
     * 是否开启租户功能
     **/
    @AliasFor("tenant")
    boolean value() default true;
    @AliasFor("value")
    boolean tenant() default true;

    /**
     * 租户ID  使用租户注解的情况下  优先使用改值，用于处理特定固定租户的设置
     **/
    String tenantId() default "";

    /**
     * 是否级联处理  in查询
     */
    boolean penetration() default false;
}
